﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using Oracle.ManagedDataAccess.Client;

namespace CYZHAPI.Common.DB
{
    public class DBConnSingleton
    {
        // 定义一个静态变量来保存类的实例
        private static OracleConnection _uniqueInstance=null;
        private static object obj = new object();
        // 定义私有构造函数，使外界不能创建该类实例
        private DBConnSingleton()
        {
        }

        /// <summary>
        /// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点
        /// </summary>
        /// <returns></returns>
        public static OracleConnection GetInstance(string connStr)
        {
            // 如果类的实例不存在则创建，否则直接返回
            if (_uniqueInstance == null)
            {
                lock (obj)
                {
                    if (_uniqueInstance==null)
                    {
                        //var str = ConfigurationManager.ConnectionStrings["DBcontection"].ConnectionString;//获取配置文件中的数据库连接字符串
                        _uniqueInstance = new OracleConnection(connStr);//实例化
                        try
                        {
                            _uniqueInstance.Open();
                        }
                        catch (Exception e)
                        {
                            return null;
                        }
                    }
                }
            }
            return _uniqueInstance;
        }
    }
    
    
}